/* Copyright (c) 2024 Huawei Technologies Co., Ltd.
 * This file is a part of the CANN Open Software.
 * Licensed under CANN Open Software License Agreement Version 1.0 (the "License").
 * Please refer to the License for details. You may not use this file except in compliance with the License.
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
 * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
 * See LICENSE in the root of the software repository for the full text of the License.
 * ===================================================================================================================*/

#ifndef INC_GRAPH_FLOW_GRAPH_DATA_FLOW_ATTR_DEFINE_H_
#define INC_GRAPH_FLOW_GRAPH_DATA_FLOW_ATTR_DEFINE_H_

#include "graph/debug/ge_attr_define.h"

namespace ge {
namespace dflow {
// Public attribute
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_DATA_FLOW_PROCESS_POINTS;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_IS_DATA_FLOW_GRAPH;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_DATA_FLOW_INPUT;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_DATA_FLOW_OUTPUT;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_DATA_FLOW_CONTAINS_N_MAPPING_NODE;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_DATA_FLOW_ENABLE_EXCEPTION_CATCH;

// For data align
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_DATA_FLOW_INPUTS_ALIGN_TIMEOUT;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_DATA_FLOW_INPUTS_ALIGN_MAX_CACHE_NUM;
// whether dropout data when no align
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_DATA_FLOW_INPUTS_ALIGN_DROPOUT;

// For count batch
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_COUNT_BATCH_BATCH_SIZE;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_COUNT_BATCH_SLIDE_STRIDE;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_COUNT_BATCH_TIMEOUT;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_COUNT_BATCH_BATCH_DIM;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_COUNT_BATCH_FLAG;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_COUNT_BATCH_PADDING;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_COUNT_BATCH_DROP_REMAINDER;

// For time batch
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_TIME_BATCH_TIME_WINDOW;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_TIME_BATCH_TIME_INTERVAL;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_TIME_BATCH_TIMEOUT;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_TIME_BATCH_BATCH_DIM;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_TIME_BATCH_FLAG;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_TIME_BATCH_PADDING;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_TIME_BATCH_DROP_REMAINDER;

// FlowFunc
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_FLOW_FUNC_BIN_PATH;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_FLOW_FUNC_FUNC_LIST;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_FLOW_FUNC_FUNC_INPUTS_INDEX;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_FLOW_FUNC_FUNC_OUTPUTS_INDEX;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_FLOW_FUNC_FUNC_STREAM_INPUT;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_FLOW_FUNC_INVOKE_KEYS;

// for balance
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_BALANCE_SCATTER;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_BALANCE_GATHER;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char *const ATTR_NAME_DYNAMIC_BALANCED_DISTRIBUTION_HCOM;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char
    *const ATTR_NAME_DYNAMIC_BALANCED_DISTRIBUTION_HCOM_GROUP;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char
    *const ATTR_NAME_DYNAMIC_BALANCED_DISTRIBUTION_HCOM_TAG;
GE_FUNC_DEV_VISIBILITY GE_FUNC_HOST_VISIBILITY extern const char
    *const ATTR_NAME_DYNAMIC_BALANCED_DISTRIBUTION_HCOM_IS_RECV;
}  // namespace dflow
}  // namespace ge
#endif  // INC_GRAPH_FLOW_GRAPH_DATA_FLOW_ATTR_DEFINE_H_
